<!-- 任务详情 》 任务记录 -->

<template>
  <div>
    <EasyScroll full>
      <el-timeline>
        <el-timeline-item
          v-for="(item, i) in one.planTaskEventDto || []"
          :key="item.id"
          :timestamp="CORE.timeStr(item.handleTime)"
        >
          <div class="DetailRepair-RepairRecord-title">{{ item.eventName }}</div>

          <div v-for="(text, i) in getText(item)" :key="i">
            {{ text[0] }}：<span :class="text[2]">{{ text[1] }}</span>
          </div>

          <template #dot>{{ i + 1 }}</template>
        </el-timeline-item>
      </el-timeline>
    </EasyScroll>
  </div>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'TaskRecord',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixWeb()],

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 获取文本
     */
    getText(item) {
      const {
        handleUserName = '',
        handleUserPhone = '',
        assignUserName = '',
        assignUserPhone = '',
        reviewStatus,
        eventCode,
        opinion,
      } = item

      const user = `${handleUserName}${handleUserPhone ? ` (${handleUserPhone})` : ''}`
      const worker = `${assignUserName}${assignUserPhone ? ` (${assignUserPhone})` : ''}`
      const review = reviewStatus === 1 ? '同意' : '不同意'
      const color = `DetailRepair-RepairRecord-${reviewStatus === 1 ? 'yes' : 'no'}`

      switch (eventCode) {
        case 'distribute_task': // 任务派发
          return [['负责人', user]]

        case 'review_task': // 任务审核
          return [
            ['审核人', user],
            ['审核结果', review, color],
            ['审核意见', opinion],
          ]

        case 'forward_task': // 任务转派
          return [
            ['操作人', user],
            ['转派人', worker],
            ['转派意见', opinion],
          ]

        case 'cancel_task': // 任务撤销
          return [
            ['操作人', user],
            ['撤销意见', opinion],
          ]

        case 'finish_task': // 执行完成
          return [
            [`${this.GETTER.type}人`, user],
            ['处理说明', opinion],
          ]

        default:
          return []
      }
    },
  },
}
</script>
